[Amazon Connect] 着信した時間によって処理を分岐する 〜日本の祝祭日は、お休みとする〜
1 はじめに
Amazon Connect(以下、Connect)では、オペレーション時間 を参照して、営業時間外内かどうかによってフローを分岐する事ができます。
しかし、残念ながら、オペレーション時間の設定は、曜日と時間の設定しか無く、祝日等に特別な営業時間を設定することはできません。
今回は、ここをLambdaで実装して、祝日は、営業時間外として動作する問い合わせフローを作成してみたいと思います。
2 Lambdaの実装
休日の判定は、以下のコードを利用さえて頂きました。
上記のコードをrequireして、実装したConnect用のLambdaは以下のとおりです。本日が休日の場合、{isHoriday:true} が返されます。
const Holiday = require('./holiday').Holiday; exports.handler = async function(event, context) { const dt = new Date(); const dateStr = dt.getFullYear() + '/' + Number(1 + dt.getMonth()) + '/' + dt.getDate(); if (Holiday.getHolidayName(new Date(dateStr)) != '') { return { isHoliday: true }; } return { isHoliday: false }; };
問い合わせフローの中から、Lambdaを呼び出す要領については、下記の「問い合わせフローからLambda関数を呼び出す手順」をご参照下さい
3 問い合わせフロー
作成した問い合わせフローは以下のようなものです。最初に、オペレーション時間を確認して、営業時間内が返された場合は、先程のLambdaを呼び出しています。
Lambdaの戻り値で、祝日判定された場合は、営業時間外とし、そうでない場合は、そのまま営業時間内として動作します。
Lambdaの戻り値を判定しているブロックのオプションは、以下のようになっています。
4 最後に
今回のように、Lambdaで判定するのであれば、何でも自由に実装できます。
単純にオペレーション時間の設定で処理できる場合は、それに越したことはありません。そして、Lambdaでの判定は、その範囲を超える場合のみという選択になるでしょうか。